Re: Take your postgresSql on the road, and live to tell of it. - Mailing list pgsql-general

From Owen Hartnett
Subject Re: Take your postgresSql on the road, and live to tell of it.
Date
Msg-id p06230910c2dea0ca0939@[192.168.0.100]
Whole thread Raw
In response to Re: Take your postgresSql on the road, and live to tell of it.  ("Scott Marlowe" <scott.marlowe@gmail.com>)
List pgsql-general
At 5:13 PM -0500 8/7/07, Scott Marlowe wrote:
>On 8/7/07, Owen Hartnett <owen@clipboardinc.com> wrote:
>>
>>  Here's what I want to do:
>>
>>  Checkpoint the database in whatever way is appropriate.
>>
>>  Make copies of the database on several laptops for use in the field
>>  (in automobiles) to do database changes.  Record all the changes made
>>  since the checkpoint as the user makes them.
>>
>>  Periodically take all the changes back into the office, take the
>>  changes made out in the field and apply them to the main database.
>>
>>  Repeat the process.
>>
>>  Notes:
>>
>>  1) Unless an user makes a mistake, there should be no changes to the
>>  same records by multiple users.  (i.e. any concurrency violations
>>  should be registered as an exception.)
>>
>>  2) I'd prefer it to just record the sql commands executed by the
>>  database as text, then use psql < myFieldcommands to update the
>>  database.  This will also help me isolate any concurrency exceptions,
>>  and I'd like to wrap the whole update in a transaction, so I can roll
>>  the whole thing back if it does detect concurrency problems anywhere
>>  in the process (then I can edit out the offending lines).
>>
>>  3) There's no particular rush to update the database - I don't need
>>  this real-time.
>>
>>  4) Users might make their checkpoint at a different time from other users.
>
>Given that each person is likely to only be only operating on their
>own data set, I'd use an integer range for each person.  Make an int
>field in each table, and give each use a 1,000,000 id range to play
>in, or something like that.  You can even set it up so that the app
>uses sequences and have them start at whatever the user's first id is,
>and not cycling and stopping when it reaches the end to keep them from
>bumping into the next person's range.
>
>Heck, go with bigint and give each person a 1,000,000,000 range.  Then
>you could still handle 9,223,372,035 or so users before you'd run out
>of sequences for each.
>
>Heck, you could even write a system of update functions that checked
>the userid against their numeric range and only updated the data if it
>was in their range.  Send it to a coworker for approval if it's not.
>I'm having a few too mad scientist moments right about now.  Got to
>get back to my data mining project...

This would probably work, but it seems like overkill...I'll have to
think about it some more...

-Owen

pgsql-general by date:

Previous
From: Owen Hartnett
Date:
Subject: Re: Take your postgresSql on the road, and live to tell of it.
Next
From: Decibel!
Date:
Subject: Re: Tablespace